草庐IT

java - 在java中实例化泛型类型

全部标签

json - 在 Golang 中新建一个 json 编码器类型的数组或映射

我是Golang的新手,遇到了以下问题。//XXXabitinefficient.couldopenrfilesandrunoverlistonceforr:=0;r基本上,这段代码片段在每个for循环迭代中创建一个文件,然后根据(键,值)对打开一个文件来编码属于该文件的内容。但是,此代码效率低下,因为它扫描此文件的次数太多。更有效的方法是打开r文件并运行一次该列表文件。所以我想这样写(但我不知道怎么写):enc_map:=make(map[int]*Encode)forr:=0;r此代码片段首先创建一个保存json.Encoder对象的映射,然后迭代此文件一次。我查阅了go文档,它说

用于填充结构实例 slice 的 Goroutine

这是我第一天使用Go,我有一个关于goroutines和附加到实例slice的问题。想法是每辆卡车都有一个长度为1的cargo,其中包含一个名为“杂货”的项目。我几乎拥有它,但由于某种原因它正在失去卡车的属性,而且它似乎过早地终止了。https://play.golang.org/p/f0uIy5qg8dpackagemainimport"fmt"import"time"typeItemstruct{namestring}typeTruckstruct{Cargo[]Itemnamestring}funcUnloadTrucks(chchan*Truck){t:=

go - 不能在 func 的参数中使用子项(类型 []Child)作为类型 []Node

这是我的测试代码packagemainimport"fmt"typeNodeinterface{sayHello()}typeParentstruct{Namestring}typeChildstruct{ParentAgeint}typeChildren[]Childfunc(pParent)sayHello(){fmt.Printf("Hellomynameis%s\n",p.Name)}func(pChild)sayHello(){fmt.Printf("Hellomynameis%sandI'm%d\n",p.Name,p.Age)}funcmakeSayHello(nNode

go - 为什么包日志实例不能共享到 Golang 中的另一个包

我的项目有一些包,我不想将日志实例从一个函数传递到另一个函数,而是在包中使用全局日志实例。这是我完成的演示,但是运行gorunmain.go,logs/replica.log中没有任何打印。我的代码有什么问题?├──log│  └──replica.log├──logs│  └──logs.go├──main.go$catmain.gopackagemainimport("./logs")funcmain(){logs.Debug("hello")}$catlogs/logs.gopackagelogsimport(logging"github.com/op/go-logging""o

json - 在 Golang JSON POST 请求中编码为非字符串类型

我在处理Golang中的类型时遇到了一些麻烦。我正在制作一个POST路由器。考虑以下结构:typeDataBlobstruct{TimestampstringMetric_Idint`json:"id,string,omitempty"`Valuefloat32`json:"id,string,omitempty"`Stderrfloat32`json:"id,string,omitempty"`}这是我的POST路由器,使用解码流中的json.Unmarshal():funcPost(whttp.ResponseWriter,req*http.Request){body,err:=i

function - 试图将在程序 1 中创建的类型 ("object") 传递给程序 2 中的函数

我在python上花了很多时间,现在正在尝试学习golang。我正在尝试用golang做一些我经常用python做的事情;本质上是在一个程序中创建一个对象,然后将该对象传递给另一个程序中的方法(或函数)。我知道golang没有对象,但我也认为我不应该定义一个已经定义过的类型。我的示例代码如下:程序1:import("github.com/bndr/gojenkins""bitbucket.org/elsammons/senjink/actions")funcmain(){jenkins:=gojenkins.CreateJenkins(url)_,err:=jenkins.Init()

go - 如何检查恢复中错误的确切类型?

我在这里遵循这个例子:https://www.socketloop.com/tutorials/golang-smarter-error-handling-with-strings-contains-functionif!strings.Contains(err.Error(),"timedout"){fmt.Printf("resultingerrornotatimeout:%s",err)}但是,如果我在我的代码中这样做,我会得到这个err.Errorundefined(typeinterface{}isinterfacewithnomethods)我想知道我在这里做错了什么,我应

go - 由结构包装的 sql.DB 无法在实例中调用方法

我的目标是使用一个结构来包装sql.DB来做一些比sql.DB更重要的事情。我创建的实例无法运行,运行时出现此错误。DbConn.db.prepareundefined(cannotrefertounexportedfieldormethodsql.(*DB)."".prepare)我的代码是:typeDatabaseConnstruct{driverNamestringdatabaseNamestringuserNamestringpasswordstringdataSourceNamestringdb*sql.DB}func(dDatabaseConn)Open()error{d.

json - 动态返回不同类型的 JSON 结构?

我正在玩Go,但在将我从其他语言“继承”的一些设计适应它的结构时遇到了麻烦。我用OCaml和其他一些具有类似结构的语言编写代码,但我很困惑。如果没有类型继承,使用共享结构从不同地方返回JSON会变得有点奇怪。我必须根据需要递归迭代输入数据以构建单个JSON对象进行响应。举个例子:{"appVersion":"1.0.0","messageStatus":"received"}...和:{"appVersion":"1.0.0","uploadStatus":"received"}到目前为止,我能找到在Go中实现此功能的唯一方法是将包含“appVersion”的基本结构分别复制并粘贴到两

go - 转换接口(interface)可以反射(reflect)数组类型

以下代码改编自Python脚本。当然,它不会编译,这有几个原因。我正在努力了解如何修复它以提供正确的结果。特别是:我想表示一种类型(float64)或这种类型的array,所以我天真地使用了[]interface但随后传递数组将不起作用。我知道我可以用我的阵列深度复制接口(interface)阵列,但这是唯一的方法吗?反射检查有效(有点),但后来我又将接口(interface)强制转换为[]interface,但这不起作用。一个更简单的方法是传递[]float但我也想让代码通用(糟糕!;-)足以接受[][]floats并通过比较递归下降。我完全偏离轨道了吗?funcassertArra